<?php
require_once('IManageUsersView.php');
require_once('\Models\Database.php');
require_once('\Models\User.php');
require_once('\Common\Strings.php');
require_once('\Views\NavigationView.php');

class ManageUsersView implements IManageUsersView
{
	private $_userName = "userName";
	private $_password = "password";
	private $_repeatPassword = "repeatPassword";
	private $_tryCreateUser = "tryCreateUser";
	private $_tryDelete = "tryDelete";
	
	public $status = "status";
	public $userCreated = "userCreated";
	public $userDeleted = "userDeleted";
	
	/**
	 * Skapar registreringformulär
	 * @return String HTML-formulär
	 */
	public function getRegisterForm()
	{	
		$html = 
		"<form method='POST' action='index.php?".NavigationView::$controller."=".NavigationView::$manageUsers."'
			<fieldset>
				<label for='".$this->_userName."'>Användarnamn</label>
				<input type='texfield' id='".$this->_userName."' name='".$this->_userName."' /><br />
				<label for='".$this->_password."'>Lösenord</label>
				<input type='password' id='".$this->_password."' name='".$this->_password."' /><br />
				<label for='".$this->_repeatPassword."'>Repetera lösenord</label>
				<input type='password' id='".$this->_repeatPassword."' name='".$this->_repeatPassword."' /><br />
				<input type='hidden' name='".$this->_tryCreateUser."' /><br />
				<input type='submit' value='Spara' />
			</fieldset>
		</form>";
		
		return $html;
	}
	
	/**
	 * Returnerar en lista över databasens användare
	 * @param $allUsers UserArray
	 * @return $html HTML-string
	 */
	public function getUsersList(UserArray $allUsers)
	{
		$html ="";
		
		// Loopar igenom användarna och skriver ut info
		foreach ($allUsers->get() as $user)
		{
			$html .=  
			"<form method='post' action='index.php?".NavigationView::$controller."=".NavigationView::$manageUsers."' 
			OnSubmit=\"return confirm('".Strings::CONFIRM_DELETE_USER."');\">
				<label for='user".$user->getId()."'>".$user->getUser()."</label>
				<input type='hidden' name='".$this->_tryDelete."' value='".$user->getId()."' />
				<input type='submit' value='Ta bort' id='user".$user->getId()."' />
			</form>";
		}
		
		return $html;
	}
	
	/**
	 * Hämtar rubrik
	 * @return string html
	 */
	public function getRegisterHeader()
	{
		return "<h2>Skapa ny användare</h2>";
	}
	
	/**
	 * Hämtar rubrik
	 * @return string html
	 */
	public function getListHeader()
	{
		return "<h2>Användare</h2>";
	}
	
	/**
	 * Kollar om användaren försökt skapa ny användare
	 * @return Bool
	 */
	public function triedToCreateUser()
	{
		if(isset($_POST[$this->_tryCreateUser]))
			return true;
		else
			return false;
	}
	
	/**
	 * Kollar om användaren har skapat ny användare
	 * @return Bool
	 */
	public function userCreated()
	{
		if(isset($_GET[$this->status]) && $_GET[$this->status] == $this->userCreated)
			return true;
		else
			return false;
	}
	
	/**
	 * Kollar om användaren försökt ta bort en användare
	 * @return Bool
	 */
	public function triedToDeleteUser()
	{
		if(isset($_POST[$this->_tryDelete]))
			return true;
		else
			return false;
	}
	
	/**
	 * Kollar om användaren har tagit bort en användare
	 * @return Bool
	 */
	public function userDeleted()
	{
		if(isset($_GET[$this->status]) && $_GET[$this->status] == $this->userDeleted)
			return true;
		else
			return false;
	}
	
	/**
	 * Hämtar ID för den användare som ska tas bort
	 * @return int | Bool
	 */
	public function getUserID()
	{
		// Om ID är satt och är numeriskt
		if(isset($_POST[$this->_tryDelete]) && is_numeric($_POST[$this->_tryDelete]))
			return $_POST[$this->_tryDelete];
		else
			return false;
	}
	
	/**
	 * Hämtar användarnamn ur det postade formuläret
	 * @return String | Bool
	 */
	public function getUserName()
	{
		if(isset($_POST[$this->_userName]))
			return $_POST[$this->_userName];
		else
			return false;
	}
	
	/**
	 * Hämtar lösenordet ur det postade formuläret
	 * @return String | Bool
	 */
	public function getPassword()
	{
		if(isset($_POST[$this->_password]))
			return $_POST[$this->_password];
		else
			return false;
	}
	
	/**
	 * Hämtar det repeterade lösenordet ur det postade formuläret
	 * @return String | Bool
	 */
	public function getRepeatedPassword()
	{
		if(isset($_POST[$this->_repeatPassword]))
			return $_POST[$this->_repeatPassword];
		else
			return false;
	}
}

?>